package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;

import com.dhcc.DRGsHosp.core.domain.OtherGroupingResult;


/**
 * @title :DrgServiceGroupApplication.java
 * @description :DRGs分组服务
 * @author :LiQingYang
 * @date :2017年3月17日
 * @version :2.4.0
 * @copyright :DHCC 2013-2017
 */
public interface DrgServiceGroupApplication {
	
	/**
	 *  @Discription：获取数据总量
	 *  @Author： liuhongjun
	 *  @param dateFrom
	 *  @param dateTo
	 *  @param dateType
	 *  @return
	 *  @Date:2018年11月11日下午6:08:08
	 */
	public List<Object[]> getMrCount(String dateFrom, String dateTo, String dateType);
	
	/**
	 * 
	 * @methodname    : getMatchResult
	 * @description   : 分组时进行ICD对照，获取对照诊断编码及诊断名称
	 * @param         : hICDCode:医院诊断编码
	 * @author        : LiQingYang
	 * @return        :
	 * @date          : 2017年3月20日
	 */
	public List<Object[]> getMatchResult(String hICDCode,String icdType,String icdDiaVerConfig,String icdOperVerConfig);
	
	/**
	 * 
	 * @methodname    : getDRGsCountByVerCode
	 * @description   : 根据分组器版本编码获取字典表DRGs组数
	 * @param         : drgsVer:drg版本
	 * @author        : LiQingYang
	 * @return        :
	 * @date          : 2017年3月24日
	 */
	public int getDRGsCountByVerCode(String drgsVer);
	/**
	 * 
	 *  findDiagCodeNameById.  
	 *  @Description：根据ID查诊断
	 *  @Author WENYI
	 *  @param parid
	 *  @return 
	 *  @Date:2017年8月23日上午9:41:57
	 */
	public List<String> findDiagCodeNameById(String parid);
	/**
	 * 
	 *  findOperCodeNameById.  
	 *  @Description：根据ID查手术操作
	 *  @Author WENYI
	 *  @param parid
	 *  @return 
	 *  @Date:2017年8月23日上午9:42:01
	 */
	public List<String> findOperCodeNameById(String parid);
	/**
	 * 
	 *  listAdrgcount.  
	 *  @Description：未入组原因分析-应包含手术/操作信息的ADRG列表
	 *  @Author WENYI
	 *  @param adrgcode
	 *  @return 
	 *  @Date:2017年8月23日上午9:42:56
	 */
	public List<Object[]> listAdrgcount(String adrgcode);
	/**
	 * 
	 *  getNoInGroupingLog.  
	 *  @Description：获取未入组的分组日志
	 *  @Author WENYI
	 *  @param dateFrom
	 *  @param dateTo
	 *  @return 
	 *  @Date:2017年8月23日上午9:48:44
	 */
	public List<Object[]> getNoInGroupingLog(String dateFrom, String dateTo);
	/**
	 * 2016版分组log信息保存
	 * @param otherGroupingResult
	 */
	public void creatOtherGroupingLog(OtherGroupingResult otherGroupingResult);
	/**
	 * 
	 *  getOtherGroupResult.  
	 *  @Description：未入组原因更新，查询2016版新增分组结果
	 *  @Author WENYI
	 *  @param pMainIndex
	 *  @return 
	 *  @Date:2017年8月23日上午11:39:57
	 */
	public List<Object[]> getOtherGroupResult(String pMainIndex);
	/**
	 * 
	 *  saveNotInReason.  
	 *  @Description：保存未入组原因
	 *  @Author WENYI
	 *  @param pMainIndex
	 *  @param notInReason
	 *  @return 
	 *  @Date:2017年8月23日下午12:14:45
	 */
	public int saveNotInReason(String pMainIndex,String notInReason);
/**
 *  @Discription：获取首页数据
 *  @Author： liuhongjun
 *  @param param
 *  @param dateType
 *  @return
 *  @Date:2018年11月11日下午6:17:32
 */
	public List<Map<String, Object>> findMrInfo(String param, String dateType);
}

